
// ►分转元
function fenToYuan(fen) {
  if (typeof fen !== 'number') {
    fen = parseInt(fen);
  }
  return (fen / 100).toFixed(2);
}

// 分转元
// var fenAmount = 500; // 500分
// var yuanAmount = fenToYuan(fenAmount);
// console.log(yuanAmount); // 输出：5.00




// ►元转分
function yuanToFen(yuan) {
  if (typeof yuan !== 'number') {
    yuan = parseFloat(yuan);
  }
  return Math.round(yuan * 100);
}
// 元转分
// var yuanAmount = 5.00; // 5元
// var fenAmount = yuanToFen(yuanAmount);
// console.log(fenAmount); // 输出：500



// ►按钮节流
function throttle(fn, delay) {
  let timer = null;
  return function() {
    if (!timer) {
      timer = setTimeout(() => {
        fn.apply(this, arguments);
        timer = null;
      }, delay);
    }
  };
}
// 在 methods 中定义按钮点击事件
// methods: {
//   handleClick: throttle(function() {
//     // 处理按钮点击逻辑
//     console.log('按钮点击');
//   }, 1000) // 设置节流延迟时间为1秒
// }


// ►按钮防抖
function debounce(fn, delay) {
  let timer = null;
  return function() {
    clearTimeout(timer);
    timer = setTimeout(() => {
      fn.apply(this, arguments);
    }, delay);
  };
}
// 在 methods 中定义按钮点击事件
// methods: {
//   handleClick: debounce(function() {
//     // 处理按钮点击逻辑
//     console.log('按钮点击');
//   }, 1000) // 设置防抖延迟时间为1秒
// }

// ►获取当前的时间戳
function getCurrentTimestamp() {
  return Date.now();
}
// 使用方法
// var timestamp = getCurrentTimestamp();
// console.log(timestamp); // 输出当前的时间戳
// 


// ►格式化日期
function formatDateTime(date) {
  var year = date.getFullYear();
  var month = date.getMonth() + 1;
  var day = date.getDate();
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var seconds = date.getSeconds();

  return year + '-' + addZero(month) + '-' + addZero(day) + ' ' + addZero(hours) + ':' + addZero(minutes) + ':' + addZero(seconds);
}

function addZero(num) {
  return num < 10 ? '0' + num : num;
}

// 使用方法
// var currentDate = new Date();
// var formattedDate = formatDateTime(currentDate);
// console.log(formattedDate); // 输出格式化后的日期时间字符串，如：2023-09-14 12:30:45


// ►获取设备信息
function getDeviceInfo() {
  return uni.getSystemInfoSync();
}
// var deviceInfo = getDeviceInfo();
// console.log(deviceInfo); // 输出设备信息对象，包含设备型号、操作系统版本等信息

// ►获取用户位置
function getUserLocation() {
  return new Promise((resolve, reject) => {
    uni.getLocation({
      type: 'gcj02',
      success: function(res) {
        resolve(res);
      },
      fail: function(err) {
        reject(err);
      }
    });
  });
}

// 使用方法
// getUserLocation().then(function(location) {
//   console.log(location.latitude, location.longitude); // 输出用户的纬度和经度信息
// }).catch(function(error) {
//   console.error(error); // 输出获取位置信息失败的错误信息
// });


//►本地储存数据
function setLocalStorage(key, data) {
  uni.setStorageSync(key, data);
}
// 使用
// var userData = { name: 'John', age: 30 };
// setLocalStorage('user', userData);


// ►本地数据读取
function getLocalStorage(key) {
  return uni.getStorageSync(key);
}
// 使用
// var userData = getLocalStorage('user');
// console.log(userData); // 输出从本地缓存中读取的数据


// ►数组排序
function sortArray(arr) {
  return arr.sort((a, b) => a - b);
}
// 使用

// const numbers = [5, 3, 1, 4, 2];
// const sortedNumbers = sortArray(numbers);
// console.log(sortedNumbers); // 输出: [1, 2, 3, 4, 5]


// ►数组对象按某个属性排序
function sortByProperty(array, property, sortOrder = 'asc') {
  const compareFunction = (a, b) => {
    const valueA = a[property];
    const valueB = b[property];

    let result = 0;
    if (valueA < valueB) {
      result = -1;
    } else if (valueA > valueB) {
      result = 1;
    }

    return sortOrder === 'desc' ? -result : result;
  };

  return array.sort(compareFunction);
}

// 使用
// const products = [
//   { name: 'Product 1', price: 10 },
//   { name: 'Product 2', price: 20 },
//   { name: 'Product 3', price: 5 },
// ];

// // 正序排序
// const ascendingOrder = sortByProperty(products, 'price', 'asc');
// console.log(ascendingOrder);
// // 输出:
// // [
// //   { name: 'Product 3', price: 5 },
// //   { name: 'Product 1', price: 10 },
// //   { name: 'Product 2', price: 20 }
// // ]

// // 倒序排序
// const descendingOrder = sortByProperty(products, 'price', 'desc');
// console.log(descendingOrder);
// // 输出:
// // [
// //   { name: 'Product 2', price: 20 },
// //   { name: 'Product 1', price: 10 },
// //   { name: 'Product 3', price: 5 }
// // ]
